iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
自我挑戰組

資料結構大便當系列 第 23

[Day 23] Red–Black Tree I

  • 分享至 

  • xImage
  •  

紅黑樹(Red–Black Tree)

properties

  • 自平衡二元搜尋樹
  • 每個點非黑即紅
  • root 是黑色的
  • left (NIL) 是黑色的
  • 如果當前點為紅色的,則左有兩個 children 為黑
  • 從任一節點到其每個葉子的所有簡單路徑都包含相同數目的黑色節點

確保從根到葉子的最長的可能路徑不多於最短的可能路徑的兩倍長,因此有著良好的最壞情況執行時間,O(log n) 時間內完成尋找,插入和刪除

https://ithelp.ithome.com.tw/upload/images/20191005/20120250QIxOjPMLig.png

https://ithelp.ithome.com.tw/upload/images/20191005/201202504QnWI7pV01.png

Rotate Operation

  • 紅黑樹利用旋轉操作來保持其結構平衡
  • 旋轉操作可切換父子關係

https://ithelp.ithome.com.tw/upload/images/20191005/20120250riqCpYTHEk.png

left Rotate

LEFT-ROTATE(T, x)
    y = x.right
    x.right = y.left
    if y.left != T.nil
        y.left.p = x
    y.p = x.p
    if x.p == T.nil
        T.root = y
    else if x == x.p.left
        x.p.left = y
    else
        x.p.right = y
    y.left = x
    x.p = y

上一篇
[Day 22] Binary Search Tree IIII
下一篇
[Day 24] Red–Black Tree II
系列文
資料結構大便當30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言